Non-volatile memory storage devices based on NAND technology employ an erase/program cycle, which may impact performance if free blocks are not available at the time of write. Modern NAND-based storage devices erase blocks of storage proactively when they are not in use to improve performance. At present, some host devices can send “trim” commands to NAND storage devices in order to indicate to the storage device that a certain logical block address (LBA) range is no longer in use by the host's file system. However, using trim commands effectively requires tuning and analysis to insure that enough free blocks are available and that the trim commands themselves do not reduce performance/endurance. Microsoft's Performance Toolkit includes the ability to log input/output commands at the driver level, but it lacks the analysis capability required to properly assess the effectiveness of trim commands in order to optimize performance.